Public interest desires multimedia movies "on demand". But current data distribution systems are inadequate to handle mass distribution on demand. The "on demand" requirement means the distribution system must allow simultaneous independent and non-synchronous user selection and distribution of movies, allow each user to have independent control over reception of each requested movie.
Current computer systems can store large numbers of movies on tape, a smaller number of movies on fast access disk storage, and an even smaller number of movies in a computer's random access main storage. A single movie (which is a data file) may require 4 GigaBytes of digital data storage for its sound and video.
Current centralized movie distribution systems do not economically support massive simultaneous independent user viewing and control, and they do not economically compete with commercial VCRs (video cassette recorders).
Current transmission networks supporting large numbers of user devices (e.g. TV sets) only transmit unidirectional, and support synchronous transmission of movies. A single copy of a movie is transmitted to all TV sets, and no user control over the transmission is allowed, other than turning on/off of the reception of each movie. The lack of "on demand" viewing applies to both current airwave and cable TV systems.
Current computer-controlled "on demand" distribution systems have been proposed and tried, but they lack the ability to economically support mass "on demand" public viewing. A fundamental problem with such current systems is that they funnel all transmitted data through a single memory (usually a system "main memory" of a computer system), and such main memory buffer is a bottleneck to economical mass distribution.
For example, this is generally done by a computer reading blocks of data serially (one at a time) from a disk through an I/O subsystem into the computer's main memory, and then transmitting the blocks serially (one at a time) from the main memory to the network for distribution to the STBs. Each movie may have a single buffer in main memory from which each block is sent simultaneously and synchronously to all STBs which previously ordered the same movie (such as by telephone from an available movie schedule list).
Thus, each buffer transmits its content simultaneously to the TV network transmitting to all STBs which had scheduled the movie transmission. This synchronous transmission of each movie requires all requesting customers to start viewing the movie at the same time and to receive the same identically transmitted data of the movie. This is a "synchronized transmission" of one copy of each movie.
"On demand" viewing requires "non-synchronized bidirectional transmissions" for all interactive viewers of movies, in which each user controls his/her movie viewing independent of all other viewers--similar to user viewing currently obtainable with a VCR. "On demand" viewing applies to all viewers whether they are viewing the same or different movies. Many problems are involved with providing simultaneous independent non-synchronized bidirectional transmissions for all viewers.
Continuous viewing must be maintained for each viewer (no apparent transmission breaks in viewing) for the "on demand" distribution, except as commanded by each viewer using VCR-like controls such as START, STOP, REWIND, FAST-FORWARD, PAUSE, etc. while a movie is being viewed.
Conventional on-demand TV movie viewing for a limited numbers of viewers using Set Top Boxes (STBs) on a network use a host computer system. A selection menu table of movies in the host system is used by all users to independently select any movie in the menu. When a viewer selects a movie, a request is sent from his STB through the network to the host computer system for customer authorization, including customer validation and accounting functions, prior to starting transmission of the movie to the requesting viewer. Also, the host system locates a copy of the requested movie on a tape or disk drive. If the movie is found on tape, it may be transferred to a disk drive, which generally can provide better control over the network transmission process than can be obtained from a tape drive. The data is first read from the disk through an I/O subsystem (IOSS) into main storage, and then the data is read from main storage through an IOSS to a network adapter that connected to the network of the requesting STB. The network includes switching functions that receive a command from the host computer system to connect the network adapter to the requesting STBs. The host system checks the requesting STB's authorization.
The number of movies the conventional host system can concurrently supply is mostly limited by the bus bandwidth available for transmitting the independent movies to the requesting STBs. The independent copies of the transmitted movies (whether the same or different movies) compete for the memory bus bandwidth. Only one block of one movie can be transmitted on the memory bus at any one time.
Each movie being sent to a viewer requires a bandwidth of 0.2-0.5 megabytes per second (MB/s) of data transmission. In prior host/network transmission systems, all blocks of data must be read from disk through the IOSS, and written into the computer's main storage. Later, the blocks are read out of main storage through the IOSS to the network. Consequently, the prior host computer system had to twice move the movie data (once from disk, and once from main memory) in delivering the movie to the viewer.
However, other buses, which are serially connected to the memory bus, such as I/O buses, may put a severe constraint on the maximum number of independent movies which can be concurrently transmitted "on demand" to requesting STBs by conventional computer systems. An example of such a prior host computer system uses an IBM RS/6000 model 59H RISC host system. This system has 16 adapter slots on 2 microchannel buses for connecting adapters to a RISC processor. The 16 slots of the M59H system are equally divided between disk adapters and network adapters. Each adapter can handle a bandwidth of up to 10 MB/s. When designing the system to deliver movies from disks to a network through main memory, the total disk adapter bandwidth and the total network bandwidth were considered. At 4 GBs of memory storage per movie, and the high cost of memory storage, very few movies, could be delivered from memory storage by this prior art system.
When determining how many movies a host system can deliver, each transmission component of a system must be evaluated for possible bottlenecks. In the RS/6000 model 59H system, a continuous viewing capability at each requesting TV set is maintained by transmitting each movie on the network at an average 0.2-0.5 MB/s data rate. If each corresponding disk operates at the 2.0 MB/s rate with a disk adapter having a 10 MB/s bandwidth, the disk adapter (in the RS/6000 M59H) could support up to 5 disk drives operating simultaneously.
However, the bandwidth bottleneck in the M59H system is its two microchannel buses because each have only a bandwidth of 20 MB/s. In this example one microchannel bus is attached to disk adapters and the other microchannel bus is attached to network adapters. Since each microchannel bus has only 20 MB/s of bandwidth, each microchannel bus then can support only 10 disks operating simultaneously at the 2.0 MB/s rate. Thus each microchannel can support only 2 disk adapters operating at 10 MB/s and consequently 2 network adapters.
In the M59H example the system bottleneck is the microchannel buses and the system can concurrently handle a maximum of 40-100 movie requests, whether the transmission is supported by an on-demand protocol, or a synchronous protocol in which all requesting STBs being serviced are simultaneously receiving the same data without any interactive means available.
FIG. 2 represents the above described example of the prior art bottleneck in a multimedia data server computer system, using two separate I/O transmission paths through its main memory buffer to obtain I/O synchronization. Thus, it transmits data from disks 107 through its system main memory to network 108. Each of these two I/O paths requires a separate CPU command. The first command controls the transmission of the disk data along the first path comprising: one of disks 107, a connected disk adapter 201, a connected I/O bus 105, IOSS 104, system memory bus 103 into main memory 102, where the transmitted data is stored in a respective buffer. Then, a second CPU command controls a transfer of the data from main memory to an assigned network adapter 202, which is connected to network 108. A program running in CPU 101 issues these I/O commands which control the transmission of all movies from the disks 107 to requesting STBs connected to network 108.
In any prior art server computer, the data being transmitted from disk to main memory may encounter a bandwidth constraint at any internal component through which the data passes, such as I/O bus 105, IOSS 104, or the system memory bus 103. Because the data must travel both into and out of main memory, internal computer bandwidth requirements are double the movie data rate requirements of 0.2-0.5 MB/s. Different prior art server designs may have different points at which their internal resources have bandwidth constraints, limiting the number of movies which may be served at the same time.
In this example, the RS/6000 M59H system memory bus has 300 MB/s of bandwidth of which only 40 MB/s of the bandwidth can be utilized for the movie transmission operation. Accordingly, the bottleneck in the M59H system is its microchannel's maximum bandwidth of 40 MB/s. Its excess bandwidth of 260 MB/s cannot be used for movies and is wasted unless used for unrelated central processing operations.
When any prior computer system is used as a multimedia server that buffers movie transmissions through its main memory, it will have similar bottlenecks. Different prior computer systems have different bottleneck limitations which must be specifically evaluated by computer server designers.